package com.librelato.persistencia;

import java.util.ArrayList;
import java.util.List;

import com.librelato.bean.TipoProblemaBean;
import com.librelato.bean.UsuarioBean;
import com.librelato.persistencia.config.SQLConfiguracao;
import com.librelato.persistencia.enums.EnumCondicao;
import com.librelato.persistencia.interfaces.ITipoProblemaDao;

public class TipoProblemaDao<P extends TipoProblemaBean> extends DaoGenerico<P>
		implements ITipoProblemaDao<P> {

	@Override
	public String procuraPorParam(String tabela, String campo, String valor,
			EnumCondicao condicao) {
		// TODO Auto-generated method stub
		return null;
	}

	public void excluir(final P p) throws Exception {
	};

	public void editar(final P p) throws Exception {
	};

	@Override
	public P salvar(final P p) throws Exception {
		return null;
	}

	@Override
	public void preSalvar(P p) {
		// TODO Auto-generated method stub

	}

	@Override
	public List<String> buscaDestinoChamados(UsuarioBean usuario) throws Exception {

		query = SQLConfiguracao.getInstance().getValor(
				"localiza_destinos_chamados");
		if (!usuario.getSetor().equals("TI")) {
			query += " AND DESTINO <> 'Desenvolvimento'";
		}
		query += " ORDER BY DESTINO";
		conn = GerenciadorConexao.getConexao();
		List<String> destinos = new ArrayList<String>();
		try {
			ps = conn.prepareStatement(query);
			rs = ps.executeQuery();
			while (rs.next()) {
				destinos.add(rs.getString("DESTINO"));
			}
		} catch (Exception e) {
			throw e;
		}

		return destinos;
	}

	@Override
	public List<TipoProblemaBean> buscaTipos(String chave) throws Exception {
		query = SQLConfiguracao.getInstance().getValor(
				"localiza_tipos_problemas");
		conn = GerenciadorConexao.getConexao();
		TipoProblemaBean tipo;
		List<TipoProblemaBean> tipos = new ArrayList<TipoProblemaBean>();
		try {
			ps = conn.prepareStatement(query);
			ps.setString(1, chave);
			rs = ps.executeQuery();
			while (rs.next()) {
				tipo = new TipoProblemaBean();
				tipo.setCodigo(rs.getLong("IDTIPO_TP"));
				tipo.setDescricao(rs.getString("DESCRICAO_TP"));
				tipo.setDestinoChamado(rs.getString("DESTINO"));
				tipos.add(tipo);
			}

		} catch (Exception e) {
			throw e;
		}
		return tipos;
	}


}
